package com.tree.backend.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.tree.backend.entity.dto.EnterpriseDTO;
import com.tree.backend.entity.dto.EnterpriseQueryDTO;
import com.tree.backend.entity.pojo.Enterprise;
import com.tree.backend.entity.vo.EnterpriseListVO;
import com.tree.backend.entity.vo.EnterpriseStatsVO;
import com.tree.backend.entity.vo.EnterpriseVO;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * <p>
 * 企业表 服务类
 * </p>
 *
 * @author tree
 * @since 2025-11-06
 */
public interface IEnterpriseService extends IService<Enterprise> {
    
    /**
     * 获取企业统计信息
     * @return 企业统计信息
     */
    EnterpriseStatsVO getEnterpriseStats();
    
    /**
     * 获取企业列表
     * @param queryDTO 查询条件
     * @return 分页企业列表
     */
    IPage<EnterpriseListVO> getEnterpriseList(EnterpriseQueryDTO queryDTO);
    
    /**
     * 获取企业详情
     * @param id 企业ID
     * @return 企业详情
     */
    EnterpriseVO getEnterpriseDetail(Long id);
    
    /**
     * 新增企业
     * @param enterpriseDTO 企业信息
     * @return 新增的企业
     */
    Enterprise addEnterprise(EnterpriseDTO enterpriseDTO);
    
    /**
     * 更新企业
     * @param id 企业ID
     * @param enterpriseDTO 企业信息
     * @return 更新后的企业
     */
    Enterprise updateEnterprise(Long id, EnterpriseDTO enterpriseDTO);
    
    /**
     * 删除企业
     * @param id 企业ID
     */
    void deleteEnterprise(Long id);
    
    /**
     * 审核企业
     * @param id 企业ID
     * @param status 审核状态 1-通过 2-拒绝
     * @param reason 拒绝原因（可选）
     */
    void auditEnterprise(Long id, Integer status, String reason);
}
